package parserXMI;

import java.util.ArrayList;
import java.util.List;

public class Class {
	private Visibility visibilidade;
	private String name;
	private List<Variable> attributes = new ArrayList<Variable>();
	private List<Method> methods = new ArrayList<Method>();

	public Class(Visibility visibilidade, String name, List<Variable> attributes, List<Method> methods) {
		this.visibilidade = visibilidade;
		this.name = name;
		this.attributes = attributes;
		this.methods = methods;
	}
	
	public Class(String name, List<Variable> attributes, List<Method> methods) {
		this.name = name;
		this.attributes = attributes;
		this.methods = methods;
	}

	public Visibility getVisibilidade() {
		return visibilidade;
	}

	public void setVisibilidade(Visibility visibilidade) {
		this.visibilidade = visibilidade;
	}
	
	public void setVisibilidade(String visibilidade) {
		this.visibilidade = Visibility.contains(visibilidade);
	}
	
	public Class (String name){
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public List<Variable> getAttributes() {
		return attributes;
	}

	public void setAttributes(List<Variable> attributes) {
		this.attributes = attributes;
	}

	public List<Method> getMethods() {
		return methods;
	}

	public void setMethods(List<Method> methods) {
		this.methods = methods;
	}
	
	public String toString(){
		String str =  getName() +"::";
		
		for (Variable v : this.attributes){
			str += v + "; ";
		}
		
		for (Method method : this.methods) {
			str += method + "; ";
		}

		return str;
	}
		
	
}
